package com.hy.study.sort;

import java.util.Arrays;

/**
 * 冒泡排序
 */
public class BubbleSort {
    public static void main(String[] args) {
        int arr[] =new  int[80000];
        for (int i = 0; i < arr.length; i++) {
            arr[i]=(int)(Math.random()*800000);
        }
        System.out.println("----------排序前----------");

      //  System.out.println(Arrays.toString(arr));
        long startTime = System.currentTimeMillis();
        bubbleSort(arr);
        long endTime = System.currentTimeMillis();
        System.out.println("----------排序后----------");

        //System.out.println(Arrays.toString(arr));
        System.out.println("---------总共耗时("+(endTime-startTime)/1000+"秒)");

    }

    /**
     *  依次找到最大的，并且放置在最后
     * @param arr
     */
    private static  void  bubbleSort(int arr[]){
        int temp = 0;//临时变量
        for (int j = 0; j < arr.length-1; j++) {
            boolean flag = false;//做一个优化的变量
            for (int i = 0; i < arr.length - 1 - j; i++) {
                if (arr[i] > arr[i + 1]) {
                    temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                    flag = true;
                }
            }
            if (!flag) {
                break;//已经有序了，提前结束遍历
            }
        }
    }
}
